Much of the Internet today is characterized by the World Wide Web, or Web for short. The Web is based on an idea of a uniform syntax for global identifiers of network-retrievable documents, referred to as “document names”, “Web addresses” and “Uniform Resource Locators.” Uniform Resource Locators, or URLs, is misleading, since not all identifiers are locators, and even for those that are, it is not the defining characteristic. By the time the RFC 1630 formally defined the term Uniform Resource Identifier (or URI) as a generic term best suited for the concept, the term “URL” gained widespread popularity, and is a synonym for URI. A typical URI is in the form of:                http://example.com:8080/cgi-bin/animal?species=bird#Texaswhere “http://” is the scheme, “example.com” is the host, “8080” is the port (a port of 80 is used if no port is included in the URI), “/cgi-bin/animal” is the path, “species?bird” is the query, and “Texas” is the fragment.        
Typically, host, port, and path remain constant for any given web application, and users of the Web rely on the static location of web pages for Internet enjoyment. Consequently, those users will identify a frequently visited URI by adding a bookmark to their browser for easy return, where the bookmark identifies the URI of the particular page. As the Web evolves, so do web applications that might require the modification of any part of the URI, e.g., the host, port or the path. If the user accesses a web page via a bookmarked location, the user will be disappointed if the information at that location has changed without proper notification.
Luckily, redirection techniques to send the user from the old URI to the new URI are available when an intentional move is properly identified. Two of the most common techniques are use of the HTML meta refresh tag and use of the HTTP Status Code 301. In the first technique, the HTTP response header contains the following:                <META http-equiv=“refresh” content=“WAIT_TIME;URL=NEW_URL”>The body of the response page can contain any normal HTML and that HTML will be displayed by the user's agent/browser. When the user's browser reads this META tag, it will wait for the duration of WAIT_TIME and display the returned HTML. After the expiration of WAIT_TIME, the user browser automatically requests the URI specified in NEW_URL. The advantage with this technique, is the user can read any information coded into the response body before the expiration of WAIT_TIME. The disadvantage, though, is over the past few years the use of the META tag refresh has been abused by spammers and phishers to confuse visitors about which web site they are visiting.        
In the second technique, the browser is sent a HTTP Status Code 301 that corresponds to “Resource Moved Permanently.” The new location is specified in the HTTP “location” header, using PHP for example:                <?        header(“HTTP/1.1 301 Moved Permanently”);        header(“Status: 301 Moved Permanently”);        header(“Location: http://www.new-url.com”);        ?>        
When such a response is received, the user agent will make a request to the URI specified in the Location header. The advantage with this technique is two fold. First the redirect to the new URI is automatic, so it is transparent to the user. Second search engines properly index URIs redirected by this method rather than being potentially de-indexed for using the META tag refresh technique, discussed above. The act of de-indexing a URI from various search engines ensures that that URI will not resolve following a search request. The disadvantage with this second technique, however, is that there is no notification to the user that the page has been moved and to re-set the bookmark to the desired information. Consequently, the user will continue to go to the redirected URI via the 301 redirect technique until the 301 redirect is completely removed resulting in a 404 error—page not found—response to the user.
What is needed is a method that combines the two mentioned redirect techniques that (1) provides the user with a redirect notification for a period of time, and (2) automatically redirects the user following the expiration of the time period.